2.5.1 LEFT JOIN
Ein linker äußerer JOIN
nimmt alle Zeilen der linken Tabelle bei
der Verknüpfung mit auf, auch diejenigen, deren Verknüpfungsfeld
nur in einer der beiden Tabellen vorkommt. In diesem Fall werden die
Felder der anderen Tabelle mit Nullwerten (das entspricht NULL) aufgefüllt.
Nun wollen wir eine Mitarbeiterliste mit Abteilungsnamen erstellen, in der alle,
auch diejenigen ohne zugeordnete Abteilung aufgeführt sind. Wir
können also hier keinen INNER JOIN
verwenden. Wir nutzen hier einen linken
äußeren JOIN
. (Den äußeren JOIN
gibt es in zwei Formen: für die linke
und für die rechte der beiden verbundenen Tabellen. Der rechte äußeren JOIN wird später
näher betrachtet.)
Im folgenden Beispiel werden alle Mitarbeiter und Abteilungen verknüpft und aufgelistet.
Zu allen Mitarbeitern, die noch keiner Abteilung zugeordnet wurden, wird im Feld Abteilungsname der
Wert NULL
eingetragen. Wir benutzen dazu also den LEFT JOIN
.
[21]SELECT vorname, name, abteilungsname
FROM tbl_mitarbeiter
LEFT JOIN tbl_abteilung
ON tbl_mitarbeiter.abteilung_id = tbl_abteilung.abteilung_id
Bei einem LEFT JOIN
werden alle Datensätze der Tabelle auf der
linken Seite
verwendet, hier im Beispiel also tbl_mitarbeiter. Diese
werden dann – wenn ein passendes Gegenstück vorhanden ist – mit den Datensätzen der
rechten Seite, hier im Beispiel also tbl_abteilung verknüpft.
Beachten Sie bitte auch, dass bei einem äußeren JOIN
die Verknüpfung nur über die
ON-, nicht aber über die WHERE
-Anweisung erfolgen kann!